package com.weicoder.shop.po

import java.io.Serializable
import java.util.List
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.Id
import org.hibernate.annotations.DynamicInsert
import org.hibernate.annotations.DynamicUpdate
import org.hibernate.annotations.GenericGenerator
import org.springframework.context.annotation.Scope
import org.springframework.stereotype.Component
import org.springframework.beans.factory.config.ConfigurableBeanFactory
import com.weicoder.base.entity.EntityUserId
import com.weicoder.common.lang.Conversion
import com.weicoder.site.entity.base.BaseEntityTime
import scala.beans.BeanProperty
import java.math.BigDecimal

/**
 * 物品订单
 * @author WD
 * @since JDK7
 * @version 1._ 2_12-_8-_8
 */
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Entity
@DynamicInsert
@DynamicUpdate
class Orders extends BaseEntityTime with EntityUserId {
  // 编号
  @Id
  @GenericGenerator(name = "uuid", strategy = "uuid")
  @GeneratedValue(generator = "uuid")
  @BeanProperty
  var sn: String = _
  // 用户ID
  @BeanProperty
  var userId: Integer = _
  // 配送方式
  @BeanProperty
  var dispatchId: Integer = _
  // 支付类型
  @BeanProperty
  var pay: Integer = _
  // 收货地址
  @BeanProperty
  var receiverId: Integer = _
  // 备注
  @BeanProperty
  var detail: String = _
  // 状态
  @BeanProperty
  var status: Integer = _
  // 总价格
  @BeanProperty
  var total: BigDecimal = _
  // 物品列表
  //	@Type(type = "com.weicoder.base.dao.hibernate.type.JsonType")
  //	List<Products>		products

  //	/**
  //	 * 收货人
  //	 * @author WD
  //	 * @since JDK7
  //	 * @version 1._ 2_12-_8-_8
  //	 */
  //	static class Products implements Serializable {
  //		// 主键
  //		int					id
  //		// 名称
  //		String				name
  //		// 价钱
  //		BigDecimal			price
  //		// 总价钱
  //		BigDecimal			total
  //		// 数量
  //		Integer				count
  //	}

  override def getKey(): Serializable = sn

  override def setKey(key: Serializable) = this.sn = Conversion.toString(key)
}
